#ifndef MSENTENCEMANAGE_H
#define MSENTENCEMANAGE_H

#pragma once

/**************************************************************************************************************************
 * 类名：MSentenceManage
 * 作者：YuLijun
 * 日期：
 * 说明：处理多条报文组成的语句，比如AIS报文中的5号报文
 ***************************************************************************************************************************/

#include <QByteArray>

namespace ns_yht
{

    struct MSentence
    {
        int totalNumber{1};
        int nCount{0};
        QByteArray parts[10];
    };

    class MSentenceManage
    {
    public:
        MSentenceManage();
        ~MSentenceManage();

        // void reset(int id);

        bool isReady(int id);
        // id - 消息序列标志，0-9循环
        // totalNumber - 这条语句总共需要的报文数,1-9
        // index - 该条报文的顺序号，1-9，所以保存在数组中时要index-1
        void insert(int id, int totalNumber, int index, const QByteArray &part);
        QByteArray getSentence(int id);

    private:
        MSentence sentenceBuffer[10];
    };

} // namespace ns_yht

#endif